package com.suep.data_analysis.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;

import java.util.Date;
import java.util.Map;

/**
 * 用户配置实体类
 */
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
@TableName("t_user_config")
public class UserConfig extends Model<UserConfig> {
    @TableId("config_id")
    private String configId;          // 配置唯一ID

    private String userId;            // 用户ID
    private String agentId;           // 角色ID
    private String armamentId;        // 音擎ID

    @TableField(value = "set_bonus", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> setBonus;           // 音擎两件套属性

    @TableField(value = "core_skill_bonus", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> coreSkillBonus;     // 核心技属性加成

    @TableField(value = "drive_main_attr_1", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveMainAttr1;     // 1号驱动盘主属性

    @TableField(value = "drive_main_attr_2", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveMainAttr2;     // 2号驱动盘主属性

    @TableField(value = "drive_main_attr_3", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveMainAttr3;     // 3号驱动盘主属性

    @TableField(value = "drive_main_attr_4", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveMainAttr4;     // 4号驱动盘主属性

    @TableField(value = "drive_main_attr_5", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveMainAttr5;     // 5号驱动盘主属性

    @TableField(value = "drive_main_attr_6", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveMainAttr6;     // 6号驱动盘主属性

    @TableField(value = "drive_random_attr_1", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveRandomAttr1;   // 1号驱动盘随机属性

    @TableField(value = "drive_random_attr_2", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveRandomAttr2;   // 2号驱动盘随机属性

    @TableField(value = "drive_random_attr_3", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveRandomAttr3;   // 3号驱动盘随机属性

    @TableField(value = "drive_random_attr_4", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveRandomAttr4;   // 4号驱动盘随机属性

    @TableField(value = "drive_random_attr_5", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveRandomAttr5;   // 5号驱动盘随机属性

    @TableField(value = "drive_random_attr_6", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> driveRandomAttr6;   // 6号驱动盘随机属性

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;          // 创建时间

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;          // 更新时间
}